# coding:utf-8
# pip install requests -i https://mirrors.aliyun.com/pypi/simple
# pip install lxml -i https://mirrors.aliyun.com/pypi/simple
# 情况2：纯静态网页获取图片
# 解决方案：requests包会接收响应的二进制数据，取出后写入到本地。
# 分析网页，比纯静态纯文本麻烦一点，图片往往通过src标签或a标签引入到网页，第一步先分析获取图片在网页上的url资源地址，第二步请求静态资源地址获取图片二进制信息。

# 需求：爬取天堂图片网图片
import requests
from lxml import etree
import os
import time

url = 'https://www.ivsky.com/tupian/pingguo_bijiben_v62090/'
resp = requests.get(url)
html_content = resp.text    
print(html_content)

# 获取图片src地址列表
html_dom = etree.HTML(html_content)
pattern_img_src = '//ul[@class="pli"]/li/div/a/img/@src'
img_src_list = html_dom.xpath(pattern_img_src)
# 地址不完整拼一下
img_src_list = ['http:'+img_src for img_src in img_src_list]
print(img_src_list)

# 创建一个存放目录
IMG_DIR = './images'
if not os.path.exists(IMG_DIR):
    os.mkdir(IMG_DIR)
os.chdir(IMG_DIR)

for index, img_src_url in enumerate(img_src_list):
    # 请求单张图片
    resp = requests.get(img_src_url, timeout=10)
    if resp.status_code != 200:
        raise Exception("图片请求失败")
    img_bytes = resp.content

    # 写图片信息到本地
    img_path = str(index) + '.jpg'
    with open(img_path, 'wb') as file:
        file.write(img_bytes)

    time.sleep(0.3)


"""
# 作业：
修改课上代码，追加需求：
1. 增加xpath匹配，获取图片集的名字album_name。
2. 使用os包，判断是否存在路径D:\\testimg\\夜空的月亮  ，如果没有文件夹则新建，有则忽略。然后把图集下的图片自动编号保存到文件夹下 如D:\\testimg\\夜空的月亮\\1.jpg  ... 
3. (选做）爬取上一级页面 http://www.ivsky.com/tupian/ziranfengguang/index_2.html
得到多个图集
"""

